/*
 * pcb_queue.h
 *
 *  Created on: Jun 6, 2013
 *      Author: Aden
 */

#ifndef PCB_QUEUE_H_
#define PCB_QUEUE_H_

#include "pcb.h"
#define MAX_PCBQUEUE_SIZE  1000;

typedef struct pcb {
  PCBPtr pcb_ready_queue[1000];
  int front;
  int back;
  int size;

  //member functions
  int(*addToQ)(struct pcb *, PCBPtr);
  PCBPtr (*dequeueFromQ)(struct pcb *);
  int(*empty)(struct pcb *);
  
  int(*display)(struct pcb *);

} pcbStr;

typedef pcbStr * PCBQueuePtr;

PCBQueuePtr newPcbQueueConstructor(void);
int addToReadyQ(PCBQueuePtr this, PCBPtr process);
PCBPtr dequeueFromReadyQ(PCBQueuePtr this);
int emptyR(PCBQueuePtr this);

int displayr(PCBQueuePtr this);




#endif /* PCB_QUEUE_H_ */
